function p = OpticalFlowDescript1(u, v , angle_bin,  bin_size)
   
   if mod(360, angle_bin) ~= 0
       disp('angle_bin can''t be divided by 360');
       return ;
   end
   angle_step = 360/angle_bin;
   angle_index = 0:angle_step:(angle_bin - 1)*angle_step;
   angle_matrix = [cos(angle_index); sin(angle_index)];
   
   width = size(u, 2);
   height = size(u,1);
   bin_index = zeros(size(u,1), size(u,2));
   bin_wstep = floor(width/bin_size);
   bin_hstep = floor(height/bin_size);
   
   
  
   p = [];
   for i = 1:bin_size
       for j = 1:bin_size
           velocity_u = u((bin_hstep*(i-1) + 1):bin_hstep*i, (bin_wstep*(j-1) + 1):bin_wstep *j);
           velocity_v = v((bin_hstep*(i-1) + 1):bin_hstep*i, (bin_wstep*(j-1) + 1):bin_wstep *j);
           velocity_u = reshape(velocity_u', bin_wstep*bin_hstep, 1);
           velocity_v = reshape(velocity_v', bin_wstep*bin_hstep, 1);
           velocity_matrix = [velocity_u, velocity_v];
           v_map_angle = velocity_matrix*angle_matrix;
           v_map_angle(find(v_map_angle < 0)) = 0;
           p = [p, sum(v_map_angle)];
       end
   end
   p = p./sum(p);
end